The present invention relates to networked computing devices, and more particularly to a method and devices for offering network based services from multiple servers, thereby allowing for the scalable provision of services.
Packet switched computer networks have become widely used. The best known and most widely used example of such a network is the public internet.
Because of its popularity, the internet has become a desirable vehicle to provide a variety of new services to subscribers. Such services include network commerce, network telephony services, messaging services, video and audio on demand services, and the like. Many of these services appeal to large segments of the population and attract thousands of subscribers.
In order to reduce the cost and simplify the provision of such services, the architecture of devices hosting these services should be scalable. That is, a particular service should preferably be provided by multiple servers, instead of a single server.
An example network service is the Internet Call Waiting (xe2x80x9cICWxe2x80x9d) service, as disclosed in U.S. patent application Ser. No. 08/911,036, the contents of which are hereby incorporated by reference. Known ICW servers are interconnected with the internet and a telephone network such as the public switched telephone network (xe2x80x9cPSTNxe2x80x9d). This makes the scalability of such servers difficult.
Solutions enabling scalability of servers that rely only on an internet connection are known. Several such solutions distribute internet protocol (xe2x80x9cIPxe2x80x9d) connection requests across several servers. For example, a unique unified resource locator (xe2x80x9cURLxe2x80x9d) may be mapped by a server providing domain name service (xe2x80x9cDNSxe2x80x9d) to several different IP addresses, each IP address corresponding to a different physical server. Other known solutions distribute IP requests for a single IP address to multiple servers. A combination of these solutions can result in a network architecture that is scalable and that accommodates many different services.
On the other hand, services that rely on both PSTN and internet connectivity are further constrained by PSTN connectivity of a hosting server. Typically, such a server accommodates from one to a few hundred PSTN circuits. In some cases, a specific assigned server must be used for a given subscriber of the service. More sophisticated arrangements allow any server in a group to be used for any subscriber. This is not always possible or may require a costly front-end PSTN switch or other costly hardware and software.
Alternatively, each subscriber may be required to configure software to contact an assigned server. However, this complicates subscriber configuration requirements and further limits the ability of using several servers to provide service to a single subscriber.
Accordingly, improved methods and devices that allow a network subscriber service to be provided by one of many servers are desirable.
In accordance with the present invention, there is provided a method of obtaining a network service at a network interconnected computing device, the method comprising the steps of:
a. contacting a first network server having a first network address, using the network;
b. providing the first network server with an identifier of the computing device; and
c. obtaining from the first network server a second identifier of a network server, provided by the first network server based on the identifier provided in step b.
According to another aspect of the invention, there is provided a method of operating a plurality of network servers, comprising the steps of:
a. receiving a message from a network interconnected computing device, the message comprising an identifier of the computing device at a first server;
b. selecting one of the plurality of network servers based on the identifier; and
c. providing network service from the server selected in step b. to the computing device.
According to a further aspect of the invention, there is provided a network interconnected server comprising:
a processor;
a network interface in communication with a data network and the processor;
persistent storage memory in communication with the processor, and storing processor readable instructions that adapt the server to,
a. maintain a database of identifiers of network interconnected computing device;
b. receive a message from a network interconnected computing device using the network interface, the message comprising an identifier of the computing device;
c. query the database using the identifier; and
d. provide, to the network based computing device using the interface, an address of a network interconnected server for providing service to the interconnected computing device.
According to yet a further aspect of the invention, there is provided a network interconnected computing device, comprising:
a processor;
a network interface in communication with a data network and the processor;
persistent storage memory in communication with the processor, and storing processor readable instructions that adapt the device to,
a. contact a first network server having a first network address, using the network interface;
b. provide the first network server with an identifier of the computing device;
c. obtain from the first network server a second identifier of a network server, provided by the first network server based on the identifier provided in step b; and
d. provide the network server identified by the second identifier with an identifier of the computer to obtain network services from the second network server.
According to yet a further aspect of the invention, there is provided a network interconnected server comprising:
means for maintaining a database of identifiers of network interconnected computing device;
means for receiving a message from a network interconnected computing device, the message comprising an identifier of the computing device;
means for querying the database using the identifier; and
means for providing to the network based computing device, an address of a network interconnected server based on the identifier.
According to yet a further aspect of the invention, there is provided a computer readable medium comprising a software program that when loaded into a computer adapts the computer to:
a. maintain a database of identifiers of network interconnected computing devices;
b. receive a message from a network interconnected computing device, the message comprising an identifier of the computing device;
c. query the database using the identifier; and
d. provide to the network based computing device, an address of a network interconnected server, based on the identifier.
Advantageously, subscribers to the service remain unaware of the actual number of servers providing the service and of the particular server providing the service.